//
// Created by zhou on 2022/6/2.
// 本章定义的s_gets()函数，可以用strchr()函数代替其中的while循环来查找换行符
//
#include <stdio.h>
#include <string.h>
char * s_gets(char * st, int n);

// 传入一个字符串，以及长度
char * s_gets(char * st, int n)
{
    char * ret_val;
    char * find;

    ret_val = fgets(st, n, stdin);      // fgets() 返回指向char的指针，正常情况下返回的地址和第一个参数相同
    if (ret_val) // 即 ret_val != NULL
    {
        find = strchr(st, '\n');     // 查找换行符位置
        if (find)
            *find = '\0';
        else
            while (getchar() != '\n')
                continue;
    }

    return ret_val;
}

int main(void)
{
    int size = 5;
    char temp[size];


    s_gets(temp, size);

    puts("你的输入是：");
    puts(temp);

    return 0;
}
